package com.niit.sql

import org.apache.spark.SparkConf
import org.apache.spark.sql.{SaveMode, SparkSession}

object Spark_SQL_JDBC {

  def main(args: Array[String]): Unit = {
    //准备环境
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("sparkSQL")
    val spark = SparkSession.builder().config(sparkConf).getOrCreate()

    //读取数据库
    val df =  spark.read
         .format("jdbc")   //连接MySQL用的是JDBC Oracle ODBC
         .option("url","jdbc:mysql://node1:3306/BD1") //链接地址 BD1:数据库名 node1：数据库所在的IP地址 3306：端口号
         .option("driver","com.mysql.jdbc.Driver") //数据库驱动
         .option("user","root")   //数据库的用户名
         .option("password","Niit@123") //数据库的密码
         .option("dbtable","user1") //数据库表
         .load()//加载，将该表里面的数据封装到DataFrame当中

    df.show()

    //保存数据 ：将上面读取数据库的DataFrame 保存到 一个新的数据表当中 user2
    df.write
      .format("jdbc")   //连接MySQL用的是JDBC Oracle ODBC
      .option("url","jdbc:mysql://node1:3306/BD1") //链接地址 BD1:数据库名 node1：数据库所在的IP地址 3306：端口号
      .option("driver","com.mysql.jdbc.Driver") //数据库驱动
      .option("user","root")   //数据库的用户名
      .option("password","Niit@123") //数据库的密码
      .option("dbtable","user2") //数据库表
      .mode(SaveMode.Append)//当该数据表不存在的时候，会自动的创建
       .save()


    spark.close()

  }

}
